import logging

from flask import current_app
from flask import session
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from info import create_app, db, models

# 通过指定的配置名字创建对应配置的app
# create_app 就类似于工厂方法
from info.models import User

app = create_app('development')
# Flask-script
manager = Manager(app)
# 数据库迁移
Migrate(app, db)
manager.add_command('db', MigrateCommand)

# @app.route('/')
# def hello_world():
#     session['names'] = '4396'
#     logging.debug("This is a debug log.")
#     logging.info("This is a info log.")
#     logging.warning("This is a warning log.")
#     logging.error("This is a error log.")
#     logging.critical("This is a critical log.")
#     current_app.logger.info('info')
#     current_app.logger.debug('debug')
#     current_app.logger.error('error')
#     return 'Hello World! %s' % session['names']


@manager.option('-n', '-name', dest='name')
@manager.option('-p', '-password', dest='password')
def createsuperuser(name, password):
    """创建管理员用户"""
    if not all([name, password]):
        print('参数不足')
        return

    user = User()
    user.mobile = name
    user.nick_name = name
    user.password = password
    user.is_admin = True

    try:
        db.session.add(user)
        db.session.commit()
        print("创建成功")
    except Exception as e:
        print(e)
        db.session.rollback()

if __name__ == '__main__':
    manager.run()
